home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
dskut
/
lpunch.zip
/
LPUNCH.DOC
< prev
Wrap
Text File
|
1991-12-07
|
4KB
|
100 lines
LPUNCH - converts LISTSERV/NETSERV punch format files into variable
length PC files. v1.00 .
On BITNET type networks (including EARN), automated file servers called
LISTSERV & NETSERV machines exist. For users who e-mail file requests to
them, the servers check to see if the file that is supposed to be sent
has records longer than 80 bytes. If so, the records are converted into
a format called LISTERV Punch, where each record is no more than 80
bytes.
Most of the mainframes on BITNET have a conversion program that restores
these files to their original form. But, if you receive the file on
another network, your site probably won't have a conversion program. LPUNCH
will take files in this format and convert them to regular PC text files.
The command syntax is:
LPUNCH <input file> <output file>
where <input file> is the file with in LISTERV Punch format and
<output file> is where you want the conversion written to.
Example: You have mailed a the request GET LISTSERV FILELIST to your nearest
LISTSERV machine. You have received a response you call LISTSERV.FIL
on your PC. If you wanted to convert it to LISTSERV.TXT on your floppy,
you would type:
LPUNCH LISTSERV.FIL A:\LISTSERV.TXT
Technical Information:
----------------------
This program discards any data until it finds the start record. This will
be a line starting with:
ID/filename filetype recfm lrecl
where filename & filetype are 8-byte fields (IBM mainframe file naming
convention for the VM operating system), recfm is either 'F' or 'V'
(depending on whether the original file had fixed or variable length
records), and lrecl is the length of the longest record. Example:
ID/LISTSERV FILELIST V 107
This will be followed by lines in one of the following formats:
Variable records (V): total length of record/# of lines making up record/data
If more than 1 line makes up the record, subsequent lines won't have headers.
Examples: A 107 byte record would have the form:
107/2/<data>
<continuation of data>
A blank line would have the form:
1/1/
Fixed-length (F): # of lines in the record/data
If more than 1 line makes up the record, subsequent lines won't have headers.
Example: A 200 byte record would have the form:
3/<data>
<continuation of data>
<continuation of data>
Normally, a line beginning with /END indicates the end of the file, but
this program can also handle a file without a /END line.
Limitations:
------------
This program was designed to handle text files, not binary. Output records
can be no longer than 512 bytes. Input files must end each line with CR/LF
characters.
Further info:
-------------
You can get the LISTSERV Punch format specs by sending e-mail with this line:
GET LISTLPUN MEMO
to your local LISTSERV or to NETSERV@BITNIC.BITNET. This file also includes
sample conversion programs in Turbo Pascal and mainframe VM C showing simple
conversion methods (I wrote LPUNCH with Turbo C++ based on the spec, not
on the sample).
LPUNCH is copyright (c) 1991 by Paul McGinnis. This program may be freely
distributed if you include this documentation. This program may not be
sold or altered without permission from the author. The author will not
be liable for any damage arising from the use or misuse of this program.
I can be reached at:
Paul McGinnis
P.O. Box 28084
Santa Ana, CA 92799
Internet: TRADER@cup.portal.com
CompuServe: 76056,201
GEnie: EXP.ENG-
America Online: PaulMcG